### Стеки и очереди
1. Ниже приведены интерфейсы шаблонов классов «Стек» и «Очередь»
```cpp
template< typename T >
class Queue
{
  public:
    void push(T rhs);
    T drop();
    ...
};

template< typename T >
class Stack
{
  public:
    void push(T rhs);
    T drop();
    ...
};
```
Переработайте интерфейс: исправьте и дополните его; сделайте безопасным. Реализуйте исправлен-
ные интерфейсы. Воспользуйтесь реализованными шаблонами классов для разбора арифметических
выражений

2. Арифметические выражения содержатся в файле, имя которого задано параметром командной стро-
ки, по одному выражению на каждой строке.
• Элементы выражения гарантировано разделены ровно одним пробелом (при этом выражения
могут быть неверными с точки зрения математики). Пример входного файла:
```txt
( 1 + 2 ) * ( 3 - 4 )
1 + 3
( 10 / ( 2 + 3 ) % 4 )
4 * 7 - 3
```
• Пустые строки в файле пропускаются

• Если параметр командной строки filename не задан, выражения читаются со стандартного вво-
да. Признаком конца ввода является EOF(на Linux: Ctrl + D | на Windows Ctrl + C)

• Если арифметические выражения верны, результатом работы программы являются результаты
вычисления выражений выведенные в обратном порядке (относительно порядка выражений) в
одну строку, разделённые ровно одним пробелом

• В арифмитических выражениях используются только бинарные операции: + — сложение, - —
вычитание, * — умножение, / — деление, % — остаток от деления

• В случае ошибки во время вычислений (например, операнд не является числом или арифме-
тическое выражение неверно) программа должна завершаться с ненулевым кодом возврата и
сообщением об ошибке

3. Работа должна быть выполнена в виде 1-го исполняемого файла, принимающего параметры следу-
ющим образом:
```bash
$ ./lab {filename}
```
```filename``` представляет собой опциональной параметр. Поведение программы меняется в зависимости
от того передан он или нет

Совет-1 Для вычисления выражений необходимо преобразовать инфиксные арифметические выражения в
постфиксные, а затем произвести вычисления.

Совет-2 Стеков и очередей достаточно как для решения задачи преобразования инфиксных выражений в
постфиксные, так и для вычислений. Никаких других структур данных не требуется.
